package com.feihong.txgw.ui.mvp.view;

import android.content.DialogInterface;
import android.content.Intent;
import android.support.annotation.NonNull;

import com.feihong.txgw.ui.mvp.precenter.AbBasePrecenter;

import cn.pedant.SweetAlert.SweetAlertDialog;

/**
 * @Author wangziheng
 * @ProjectName txgw_app
 * @ClassName IBaseView
 * @package com.feihong.txgw.ui.mvp
 * @data 2018/5/2 11:28
 * @Describe
 * @Change
 */
public interface IBaseView {
    /**
     * 初始化presenter
     * <p>
     * 此方法返回的presenter对象不可为空
     */
    @NonNull
    AbBasePrecenter initPresenter();

    void loadDataComplated();

    void loadDataError();

    /**
     * 显示登录提示
     */
    void showLoginDialog();
    /**
     * 通用方法，判断用户是否登录，登录了打开页面，没有登录提示登录
     * @param intent
     */
    void checkLoginAndStartIntent(Intent intent);
    /**
     * 显示系统Toast
     * @param msg
     */
    void showSystemToast(String msg);

    /***
     * 显示确认对话框
     * @param title  标题
     * @param message 内容
     * @param confirmText  确认按钮
     * @param cancelText  取消按钮
     * @param confirmClickListener 确认监听器
     */
    void showConfirmDialog(String title, String message, String confirmText, String cancelText, SweetAlertDialog.OnSweetClickListener confirmClickListener);

    void showConfirmDialog(String title, String message, String confirmText, String cancelText, SweetAlertDialog.OnSweetClickListener confirmClickListener, SweetAlertDialog.OnSweetClickListener cancelClickListener);

    void showDialog(String title, String message);

    /**
     * 成功提示对话框
     *
     * @param title           标题
     * @param message         内容
     * @param dismissListener 对话框关闭监听器
     */
    void showDialog(String title, String message, DialogInterface.OnDismissListener dismissListener);
    /**
     * 等待对话框
     *
     * @param message 提示
     */
    void showProgressDialog(String message);



    void dismissProgressDialog();
    /**
     * 等待对话框
     *
     * @param message    提示
     * @param cancelable 是否可以返回键来关闭
     */
    void showProgressDialog(String message, boolean cancelable);

}
